home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / C and C++ / Libraries / BlobMgr / Library Folder / Rand.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-02-21  |  582 b   |  42 lines  |  [TEXT/KAHL]

  1. /*
  2.  * Blob random number routines
  3.  */
  4.  
  5. # include    "BlobMgr.h"
  6.  
  7.  
  8. static pascal short
  9. DefaultRand (short max)
  10. {
  11. short    t;
  12.  
  13.     t = Random ();
  14.     if (t < 0) t = -t;
  15.     return (t % (max + 1));
  16. }
  17.  
  18.  
  19. static BRandProcPtr bRandProc = (BRandProcPtr) DefaultRand;
  20.  
  21.  
  22. /*
  23.  * Return integer between zero and max (inclusive).  Assumes max is
  24.  * non-negative.
  25.  */
  26.  
  27. pascal short
  28. BlobRand (short max)
  29. {
  30.     return ((*bRandProc) (max));
  31. }
  32.  
  33.  
  34. /*
  35.  * Install procedure as random number generator for BlobRand()
  36.  */
  37.  
  38. pascal void
  39. SetBlobRand (BRandProcPtr f)
  40. {
  41.     bRandProc = (f == (BRandProcPtr) nil ? DefaultRand : f);
  42. }